import { authAxios } from '@/api/auth'; // 从auth模块导入authAxios

// 用户资料API服务
export const profileApi = {
    // 获取当前用户资料
    getCurrentUserProfile: () => authAxios.get('/auth/me'),

    // 更新用户资料
    updateUserProfile: (updateDTO) => authAxios.patch('/profile/update', updateDTO),

    // 修改密码
    changePassword: (changePasswordDTO) => authAxios.post('/profile/change-password', changePasswordDTO),

    // 注销账户
    deactivateAccount: () => authAxios.delete('/profile/deactivate'),

    // 删除用户账户
    deleteUser: (userId) => authAxios.delete(`/profile/delete/${userId}`),

    // 获取所有用户信息（管理员）
    getAllUsers: (pageable) => authAxios.get('/profile/admin/users', { params: pageable }),

    // 搜索用户（管理员）
    searchUsers: (keyword) => authAxios.get('/profile/admin/search', { params: { keyword } })
};

// 单独导出常用方法以便按需导入
export const {
    getCurrentUserProfile,
    updateUserProfile,
    changePassword,
    deactivateAccount,
    deleteUser,
    getAllUsers,
    searchUsers
} = profileApi;

// 添加响应拦截器处理特定错误
authAxios.interceptors.response.use(
    response => response,
    error => {
        if (error.config.url.includes('/profile')) {
            console.error('用户资料操作错误:', error.response?.data?.message || error.message);

            // 特定状态码处理
            if (error.response?.status === 401) {
                console.error('认证过期，请重新登录');
            }

            if (error.response?.status === 403) {
                console.error('无权限执行此操作');
            }
        }
        return Promise.reject(error);
    }
);

export default profileApi;